package com.lanchetech.user.service;


import com.github.pagehelper.Page;
import com.lanchetech.bean.request.LotteryOpportunityPageReq;
import com.lanchetech.bean.request.PageReq;
import com.lanchetech.bean.request.UserVoucherReq;
import com.lanchetech.bean.response.BargainEditResp;
import com.lanchetech.bean.response.BasePageResp;
import com.lanchetech.bean.response.BaseResp;
import com.lanchetech.bean.response.ResultData;
import com.lanchetech.bean.vo.*;
import com.lanchetech.entity.*;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.RequestParam;

import java.math.BigDecimal;
import java.util.List;

public interface MarketingService {

    ResultData<BasePageResp<Coupon>> getAllCouponPage(User user, PageReq req);

    BaseResp selectCoupon(User user, Long id);

    ResultData<BigDecimal> getSignIn();

    ResultData<Boolean> isSignIn();

    ResultData<List<SignIn>> getMonthSignInRecord(Integer month);

    ResultData<BasePageResp<BargainSpuItemVO>> getBargainPage(PageReq req);

    ResultData<BargainEditResp> getBargainDetail(Long id);

    ResultData<Long> createBargainRecord(BargainRecord req);

    ResultData<BasePageResp<BargainRecordVO>> getBargainRecordPage(PageReq req);

    ResultData<BargainRecordVO> getBargainRecordDetail(User user, Long id);

    ResultData<BasePageResp<BargainDetailVO>> getBargainDetailPage(PageReq req);

    ResultData<BigDecimal> createBargainDetail(BargainDetail req);

    ResultData<BasePageResp<UserVoucherVO>> getUserVoucherPage(UserVoucherReq req);

    ResultData<BargainRecord> getBargainRecordBySkuId(User user, Long activityId, Long skuId);

    ResultData<BasePageResp<LotteryOpportunityVO>> getLotteryOpportunityPage(LotteryOpportunityPageReq req);
}